package com.lmy.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        /**
            静态资源(js,html,css,图片等)访问规则：
            1.存放位置：默认(类路径resources下)：/static、/public、/resources、/META-INF/resources 可以被直接访问
              因为在WebProperties.java 类中默认指定，在springboot容器启动时，相关自动配置类xxxxAutoConfiguration就会注入WebProperties类从而完成自动配置静态资源访问路径
              private static final String[] CLASSPATH_RESOURCE_LOCATIONS
              = new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};
            2.访问方式：默认：项目根路径/ + 静态资源名 比如http://localhost:8080/hi.jpg
              因为在WebMvcProperties.java中有默认值 /**，在springboot容器启动时，WebMvcAutoConfiguration类就会注入WebMvcProperties
              this.staticPathPattern = "/**";
              可以在yaml或properties等配置文件中修改此默认值
            3.如果没有修改存放位置，直接放在类路径resources下是无法访问的，必须严格按照其默认值来设置目录并存放
            4.静态资源访问原理；静态映射是 /**，也就是对所有请求拦截，当有请求进来，先看controller能不能处理，
              不能处理的先交给静态资源处理器，如果静态资源找不到则响应404页面
            5.改变静态资源访问前缀：比如希望http://localhost:8080/lmy/* 去请求静态资源，应用场景：静态资源访问前缀和控制器请求路径冲突
         */

        SpringApplication.run(Application.class, args);
    }
}
